//package com.zmn.plat.task.listenter.elastic;
//
//import com.alibaba.fastjson.JSONObject;
//import com.zmn.common.utils.string.StringUtil;
//import com.zmn.plat.manager.interfaces.search.NewsRepository;
//import com.zmn.plat.manager.utils.MqConsts;
//import com.zmn.plat.model.dto.MQNewsDTO;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import org.springframework.amqp.rabbit.annotation.RabbitHandler;
//import org.springframework.amqp.rabbit.annotation.RabbitListener;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Component;
//
///**
// * News搜索索引写入请求监听器
// * @author nowind
// * @since 2017/9/20 15:20
// */
//@Component
//@RabbitListener(queues = MqConsts.MQ_INDEX_NEWS_QUEUE)
//public class IndexNewsQueueListenter {
//    private Logger logger = LoggerFactory.getLogger(IndexNewsQueueListenter.class);
//
//    @Autowired
//    private NewsRepository newsRepository;
//
//
//    @RabbitHandler
//    public void process(String message) {
//
//        try {
//
//            if(StringUtil.isBlank(message)) {
//                logger.error(String.format("[zmn]News索引消息为空,message:[%s]", message));
//                return;
//            }
//
//            // 解析消息内容
//            MQNewsDTO mq = JSONObject.parseObject(message, MQNewsDTO.class);
//
//            // 执行索引操作
//            this.indexSearch(mq);
//
//        } catch(Exception ex){
//
//            logger.error(String.format("[zmn]监听News索引消息并写入索引出错,message:[%s],ex:[%s]", message, ex.getMessage()));
//        }
//    }
//
//    //region 执行索引操作
//    private void indexSearch(MQNewsDTO mq) {
//
//        switch (mq.getType()) {
//            case MqConsts.INDEX_TYPE_ADD:
//                newsRepository.addNews(mq);
//                break;
//            case MqConsts.INDEX_TYPE_ADD_BATCH:
//                //newsRepository.addNews(mq);
//                break;
//            case MqConsts.INDEX_TYPE_UPDATE:
//                newsRepository.updateNews(mq);
//                break;
//            case MqConsts.INDEX_TYPE_UPDATE_BATCH:
//                //newsRepository.updateNews(mq);
//                break;
//            case MqConsts.INDEX_TYPE_UPDATE_IMGSRC:
//                newsRepository.updateNewsImgSrc(mq);
//                break;
//            case MqConsts.INDEX_TYPE_UPDATE_STATUS:
//                newsRepository.updateNewsStatus(mq);
//                break;
//            case MqConsts.INDEX_TYPE_UPDATE_STATUS_BATCH:
//                newsRepository.updateNewsStatus(mq);
//                break;
//            case MqConsts.INDEX_TYPE_UPDATE_SORT:
//                newsRepository.updateNewsSort(mq);
//                break;
//            case MqConsts.INDEX_TYPE_UPDATE_SORT_BATCH:
//                newsRepository.updateNewsSort(mq);
//                break;
//            case MqConsts.INDEX_TYPE_UPDATE_UPDATETIME:
//                newsRepository.updateNewsUpdateTime(mq);
//                break;
//            case MqConsts.INDEX_TYPE_DELETE:
//                newsRepository.removeNews(mq);
//                break;
//            case MqConsts.INDEX_TYPE_DELETE_BATCH:
//                newsRepository.removeNews(mq);
//                break;
//            default:
//                break;
//        }
//    }
//    //endregion
//}
